package app.dis.accesoadatos.dao;

import java.util.List;

import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.Query;

import org.jboss.logging.Logger;

import app.dis.accesoadatos.entidades.Cuenta;

@Stateless
public class CuentaDAO {

	@Inject
	EntityManager em;

	Logger log = Logger.getLogger(this.getClass().getName());

	public int getNumeroCuenta() {

		String sql = "select max(to_number(cue.numeroCuenta,'9999999999')) from Cuenta cue";

		Query query = em.createNativeQuery(sql);

		List a = em.createNativeQuery(sql).getResultList();

		return Integer.parseInt(a.get(0).toString());

	}

	public void insertar(Cuenta cuenta) {

		em.persist(cuenta);

	}

	public Cuenta findById(long id) {
		
		return em.find(Cuenta.class, id);
	}
	
	public double Consultar(long id) {
		String sql = "select c from Cuenta c where id= " + id;

		return em.createQuery(sql, Cuenta.class).getSingleResult().getSaldoActual();

	}
	
	public void Actualiza(Cuenta cuenta){
		em.merge(cuenta);
	}
	
	public Cuenta ConsultarCuenta(String NumeroDeCuenta) {
		String sql = "select c from Cuenta c where numerocuenta like '"
				+ NumeroDeCuenta + "' ";

		return em.createQuery(sql,Cuenta.class).getSingleResult();


	}
	
	public List<Cuenta> getConsultar(Long idCliente) {

		String sql = "select * from Cuenta c, Cliente cl,cliente_cuenta cc where c.id=cc.cuentas_id and cl.id=cc.cliente_id  and cl.id ="
				+ idCliente;
		

		return em.createNativeQuery(sql, Cuenta.class).getResultList();

	}

}
